// 通知background.js content script已加载
console.log('AI提醒助手内容脚本已加载');

// 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', () => {
  initSearchListeners();
  checkPendingReminder();
});

// 检查是否有未完成的提醒需要显示
function checkPendingReminder() {
  const reminderData = localStorage.getItem('aiReminderData');
  if (reminderData) {
    try {
      const { startTime, duration } = JSON.parse(reminderData);
      const currentTime = new Date().getTime();
      const elapsedTime = currentTime - startTime;
      
      // 如果提醒未到显示时间，继续显示
      if (elapsedTime < duration) {
        console.log('继续显示未完成的提醒，剩余时间：', (duration - elapsedTime) / 1000, '秒');
        showAIReminder(duration - elapsedTime);
      } else {
        // 提醒已经显示足够时间，清除记录
        console.log('提醒已经显示完毕，清除记录');
        localStorage.removeItem('aiReminderData');
      }
    } catch (e) {
      console.error('解析提醒数据出错：', e);
      localStorage.removeItem('aiReminderData');
    }
  }
}

// 监听搜索引擎行为
function initSearchListeners() {
  console.log('初始化搜索监听');
  
  // 判断当前是否为常见搜索引擎
  const isSearchEngine = 
    location.hostname.includes('google') || 
    location.hostname.includes('bing') || 
    location.hostname.includes('baidu') ||
    location.hostname.includes('sogou') ||
    location.hostname.includes('so.com');
    
  if (isSearchEngine) {
    console.log('检测到搜索引擎页面，添加事件监听');
    
    // 获取搜索框
    let searchInput = null;
    if (location.hostname.includes('google')) {
      searchInput = document.querySelector('input[name="q"]');
    } else if (location.hostname.includes('bing')) {
      searchInput = document.querySelector('#sb_form_q');
    } else if (location.hostname.includes('baidu')) {
      searchInput = document.querySelector('#kw');
    } else if (location.hostname.includes('sogou')) {
      searchInput = document.querySelector('input[name="query"]');
    } else if (location.hostname.includes('so.com')) {
      searchInput = document.querySelector('input[name="q"]');
    }
    
    // 如果找到搜索框，添加事件监听
    if (searchInput) {
      // 监听回车键
      searchInput.addEventListener('keydown', (event) => {
        if (event.key === 'Enter' || event.keyCode === 13) {
          console.log('检测到搜索回车操作');
          checkAndShowReminder();
        }
      });
      
      // 寻找搜索按钮并监听点击
      const searchButtons = document.querySelectorAll('button[type="submit"], input[type="submit"]');
      searchButtons.forEach(button => {
        button.addEventListener('click', () => {
          console.log('检测到搜索按钮点击');
          checkAndShowReminder();
        });
      });
    }
  }
}

// 检查搜索内容并显示提醒
function checkAndShowReminder() {
  // 这里可以添加更多逻辑来判断是否应该显示提醒
  // 例如检查搜索内容是否包含特定关键词
  showAIReminder();
  
  // 向background.js报告搜索行为
  chrome.runtime.sendMessage({
    action: 'searchDetected',
    url: window.location.href
  });
}

// 监听来自背景脚本的消息
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  console.log('收到消息:', request);
  if (request.action === 'showReminder') {
    showAIReminder();
    // 发送响应确认收到
    sendResponse({ status: 'success' });
  }
  // 必须返回true以支持异步sendResponse
  return true;
});

// 显示AI提醒
function showAIReminder(remainingTime) {
  console.log('准备显示AI提醒');
  
  // 确保body已加载
  if (!document.body) {
    console.log('页面Body尚未加载，等待...');
    setTimeout(() => showAIReminder(remainingTime), 100);
    return;
  }
  
  // 检查是否已有提醒正在显示
  if (document.getElementById('ai-reminder-popup')) {
    console.log('已有提醒正在显示，不重复显示');
    return;
  }
  
  // 创建提醒元素
  const reminderElement = document.createElement('div');
  reminderElement.id = 'ai-reminder-popup';
  reminderElement.innerHTML = `
    <div class="ai-reminder-content">
      <div class="ai-reminder-icon">
        <svg viewBox="0 0 24 24" width="24" height="24">
          <path fill="currentColor" d="M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M12,10.5A1.5,1.5 0 0,1 13.5,12A1.5,1.5 0 0,1 12,13.5A1.5,1.5 0 0,1 10.5,12A1.5,1.5 0 0,1 12,10.5M7.5,9.5C8.33,9.5 9,8.83 9,8C9,7.17 8.33,6.5 7.5,6.5C6.67,6.5 6,7.17 6,8C6,8.83 6.67,9.5 7.5,9.5M16.5,9.5C17.33,9.5 18,8.83 18,8C18,7.17 17.33,6.5 16.5,6.5C15.67,6.5 15,7.17 15,8C15,8.83 15.67,9.5 16.5,9.5M12,14.5C13.68,14.5 15.12,15.5 15.68,17H8.32C8.88,15.5 10.32,14.5 12,14.5Z"></path>
        </svg>
      </div>
      <div class="ai-reminder-message">
        <p>先等等，这件事可以用AI吗？</p>
      </div>
      <div class="ai-reminder-close">×</div>
    </div>
  `;
  
  // 添加到页面
  document.body.appendChild(reminderElement);
  
  // 显示动画
  setTimeout(() => {
    reminderElement.classList.add('show');
  }, 100);
  
  // 点击关闭按钮
  const closeButton = reminderElement.querySelector('.ai-reminder-close');
  closeButton.addEventListener('click', () => {
    hideAIReminder(reminderElement);
    localStorage.removeItem('aiReminderData');
  });
  
  // 设置显示时长和开始时间
  const duration = remainingTime || 10000; // 如果没有剩余时间，使用默认时间10秒
  
  // 记录显示数据到localStorage，以便页面刷新后继续显示
  if (!remainingTime) {
    const reminderData = {
      startTime: new Date().getTime(),
      duration: duration
    };
    localStorage.setItem('aiReminderData', JSON.stringify(reminderData));
  }
  
  // 设定时间到达后自动关闭
  setTimeout(() => {
    hideAIReminder(reminderElement);
    localStorage.removeItem('aiReminderData');
  }, duration);
}

// 隐藏AI提醒
function hideAIReminder(element) {
  element.classList.remove('show');
  element.classList.add('hide');
  
  // 动画结束后移除元素
  setTimeout(() => {
    if (element.parentNode) {
      element.parentNode.removeChild(element);
    }
  }, 500);
} 